package saa.dominio.usuario;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;

import saa.dominio.Curso;

@Entity
@NamedQueries({
    @NamedQuery(name = "Coordenador.id", query = "SELECT c FROM Coordenador c WHERE c.id = :id"),
    @NamedQuery(name = "Coordenadores", query = "SELECT c FROM Coordenador c"),
    @NamedQuery(name = "Coordenador.email", query = "SELECT c FROM Coordenador c WHERE c.usuario.email = :email")})
public class Coordenador implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @Column(nullable = true)
    @OneToOne
    private Curso curso;

    @Column(nullable = false)
    @OneToOne
    private Usuario usuario;

    public Coordenador() {
        super();
    }

    public Coordenador(Curso curso, Usuario usuario) {
        this.curso = curso;
        this.usuario = usuario;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Curso getCurso() {
        return curso;
    }

    public void setCurso(Curso curso) {
        this.curso = curso;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

}
